package oop2.Task1;
/*
一商场(有名称，地址等信息)的会员系统中，有多个会员，用对象数组表示，假设为100个，
会员属性有会员号，姓名，手机号，积分，

1：添加新会员开卡的方法（添加新会员，参数如何处理？）增加新会员方法中添加判断，添加新会员时限制会员号不能重复，如果重复，禁止添加。
 方法申明如下：public boolean add(Member people)

2: 尝试加方法：给某一用户涨分的方法。
 方法声明如右： boolean inc(String cardNo,int fen)：如果帐号不存在，返回false

3：定义兑换礼品的方法
  假设
     1：100分兑换餐巾纸一包；
     2：400分兑换剃须刀一把；
     3：1000分兑换炒锅一个；
 用户输入卡号和需要兑换的奖品，兑换成功后扣除相应积分(礼品类不需要定义，用String返回即可)；如果帐号不存在，或者积分不够，兑换失败(提示:如果兑换成功,需要扣除相应的积分)。
  如果不成功，返回null。声明如下：
   public String duihuan(String cardNo,int lipingleixing)
 */

public class Supermarket {
    String name;
    String address;
    Member[] people = new Member[100];
    int count = 0;

    public void show() {
        System.out.println("超市的名字是:" + name + ",地址是:" + address);
        System.out.println("超市会员信息为:");
        for (int i = 0; i < count; i++) {
            people[i].show();
        }
    }

    //添加新会员,且新会员的会员号不能与之前的会员号重复，否则不能添加
    public boolean add(Member newMember) {
        if (count > people.length) {
            System.out.println("人数已满");
            return false;
        }
        for (int i = 0; i < count; i++) {
            if (people[i].cardNo.equals(newMember.cardNo)) {
                System.out.println("会员号重复，不能添加");
                return false;
            }
        }
        people[count++] = newMember;
        return true;
    }

    //给指定会员号的用户涨分
    public boolean inc(String cardNo, int fen) {
        for (int i = 0; i < count; i++) {
            if (people[i].cardNo.equals(cardNo)) {
                people[i].jifen += fen;
                return true;
            }
        }
        return false;
    }

    //兑换礼品
    public String duiHuan(String cardNo, int lipingleixing) {
        for (int i = 0; i < count; i++) {
            if (people[i].cardNo.equals(cardNo)) {
                if (lipingleixing == 1) {
                    if (people[i].jifen >= 100) {
                        people[i].jifen -= 100;
                        return "餐巾纸一包";
                    }
                } else if (lipingleixing == 2) {
                    if (people[i].jifen >= 400) {
                        people[i].jifen -= 400;
                        return "剃须刀一把";
                    }
                } else if (lipingleixing == 3) {
                    if (people[i].jifen >= 1000) {
                        people[i].jifen -= 1000;
                        return "炒锅一个";
                    }
                }
            }
        }
        return null;
    }

    //获得超市会员人数
    public int getRenShu() {
        return count;
    }

}
